<?php
include ('autoloading_classes.include.php');

/**
* Classe rappresentativa di un News
*
* \author Gianmarco Nalin
* \date 24/01/2013
*/
class News {

    //! Identificatore della News.
    /*!
     *  Se la news è nuovo il valore non è definito.
     */
    private $id;
    
    //! Titolo della news.
    private $title;
    
    //! Contentuto della news.
    private $content;
    
    //! Link di indirizzamento della news.
    private $link;
    
    //! Timestamp di creazione della news.
    private $creation_timestamp;
    
    //! Timestamp di pubblicazione della news.
    private $publication_timestamp;
    
    //! Immagine della news.
    private $image;
    
    //! Priorità della news.
    private $priority;
    
    //! Creatore della news.
    private $creator;
    
    public function __construct() {
        $this->id = 0;
        $this->title = '';
        $this->content = '';
        $this->link = '';
        $this->creation_timestamp = null;
        $this->publication_timestamp = null;
        $this->image = '';
        $this->priority = 1;
        $this->creator = '';
    }
    
    
    //! Magic Method: getter.
    /*!
     * Lancia un'eccezione se la proprietà richiesta non esiste.
     * \param name Nome della proprietà.
    */
    public function __get($name) {
        if (property_exists($this, $name)) {
            return $this->{$name};
        } else {
            //throw new Exception("The $name property doesn't exist!");
        }
    }
    
    //! Magic Method: setter.
    /*!
      Lancia un'eccezione se la proprietà che si vuole modificare non esiste.
     * \param name Nome della proprietà.
     * \param value Nuovo valore da assegnare alla proprietà.
    */
    public function __set($name, $value) {
        if(property_exists($this, $name)) {
            $this->{$name} = $value;
        } else {
            //throw new Exception("The $name property doesn't exist!");
        }
    }
    
    //! Metodo che restituisce la rappresentazione HTML della news.
    /*!
     * 
    */
    public function to_html($admin = false) { ?>
        <?= ($admin) ? '<div class="admin-element">' : ''?>
        <?php
            if ($admin) { ?>
                <div class="btn-group">
                    <a class="btn btn-warning btn-mini btn-admin" href="<?=Site::BASE_URL . 'admin/news.php?action=edit&id=' . $this->id ?>"><i class="icon-white icon-pencil"></i></a>
                    <a class="btn btn-danger btn-mini btn-admin" href="<?=Site::BASE_URL . 'admin/news.php?action=delete&id=' . $this->id ?>"><i class="icon-white icon-trash"></i></a>
                  </div>
            <?php
            }
        ?>
        <div class="media">
            <a class="pull-left" href="<?= $this->link ?>">
                <img class="img-polaroid" src="<?=Site::APP_URL . Site::UPLOADS_URL . 'images/' . $this-> image ?>" alt="<?= $this->title ?>" />
            </a>
            <div class="media-body">
                <h3 class="news-title media-heading"><?= $this->title ?></h3>
                <?php 
                    if (($this->link != '#') && ($this->link != '')) { ?>
                        <div class="fb-like" data-href="<?= $this->link ?>" data-send="false" data-layout="button_count" data-width="50" data-show-faces="false"></div>
                <a href="https://twitter.com/share" class="twitter-share-button" data-url="<?= $this->link ?>" data-text="<?= $this->title ?>" data-lang="it">Tweet</a>
                <?php
                    }
                ?>
                <?= $this->content ?>
                <?php 
                    if (($this->link != '#') && ($this->link != '')) { ?> 
                        <a href="<?= $this->link ?>" class="btn btn-info btn-mini">Leggi...</a>
                <?php
                   }
                ?>
                <p></p>
            </div>
        </div>

        <?= ($admin) ? '</div>' : ''?>

    <?php    
    }
}
?>
